package com.jinxin.platform.cdflowchart.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * @Author chuxiaojiang
 * @Date 2021/5/7 23:02
 * @Version 1.0
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {

    // 需求：开发环境可以使用swagger2 APIs，生产环境不使用 swagger2 APIs
    // 解决方案：使用 Environment对象获取springboot配置文件中的profile值，进行判断

    // 需求：配置多个分组（不同的分组扫描不同的包里面的接口，用于多人协同开发）
    //    @Bean
    //    public Docket createRestApi1(){
    //        return new Docket(DocumentationType.SWAGGER_2).groupName("AAA");
    //    }


    // SwaggerConfig 配置类
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
            .apiInfo(apiInfo())
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.jinxin.platform.cdflowchart.controller"))
            .paths(PathSelectors.any())
            .build();
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
            .title("能耗-swagger-bootstrap-ui RESTful APIs")
            .description("swagger-bootstrap-ui")
            .termsOfServiceUrl("http://localhost:8082/")
            .contact("chuxiaojiang")
            .version("1.0")
            .build();
    }

}
